
題目解析:將兩個字串合並,並將A字串跟B字串合併在一起,如果字串不夠長就空白
解題思路:先設一個空字串ans,然後丟進迴圈開始跑,如果還沒超過字串長度就將該字元加入到ans,最後回傳ans
class Solution {
public:
string mergeAlternately(string word1, string word2) {
string ans = "";
for(int i=0; i<max(word1.size(), word2.size()); i++){
if(i < word1.size()){
ans += word1[i];
}
if(i < word2.size()){
ans += word2[i];
}
}
return ans;
}
};

題目解析:需要找出一個字串t能夠相加數次等於A字串跟B字串
解題思路:先找出A跟B字串字數的最大公因數n,然後再將A字串的0-n合成一個ans並設一個check的布林值,最後將ans丟進兩個for迴圈開始跑,如果都符合題目要求,check將繼續維持1,最後會輸出ans,反之則會輸出空白
class Solution {
public:
string gcdOfStrings(string str1, string str2) {
int a = str1.size(), b = str2.size();
int n = gcd(a, b);
string ans = "";
for(int i=0; i<n; i++){
ans += str1[i];
}
bool check = 1;
int i = 0;
while(check && i < str1.size()){
if(str1[i] != ans[i%ans.size()]){
check = 0;
}i++;
}
i = 0;
while(check && i < str2.size()){
if(str2[i] != ans[i%ans.size()]){
check = 0;
}i++;
}
if(check){
return ans;
}else{
return "";
}
}
};

題目解析:有n個小朋友,每個人都有不同數量的糖果,而你手上有m個糖果,題問問如果你的糖果給第n位小朋友,他是否可以變成這群小朋友裡面擁有最多糖果的小朋友
解題思路:先複製一個vector,然後將複製的vector排序找出最大的數,然後開始跑迴圈去判斷這位小朋友原本所擁有的糖果加上你給的,是否大於等於最多的小朋友,如果是將要回傳的vector加入1,不是的話則加入0
class Solution {
public:
vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {
vector<int> v = candies;
vector<bool> ans;
sort(v.begin(), v.end());
int q = v.back();
for(auto it : candies){
if(it + extraCandies >= q){
ans.push_back(1);
}else{
ans.push_back(0);
}
}
return ans;
}
};